types of singularity in complex analysis